#ifndef MD5_H
#define MD5_H

#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <stddef.h>

typedef struct {
    uint32_t state[4];
    uint32_t count[2];
    uint8_t buffer[64];
} MD5_CTX;
uint8_t* masterVerifi(uint8_t *msg , int len);
void MD5Init(MD5_CTX *context);
void MD5Update(MD5_CTX *context, const uint8_t *input, size_t inputLen);
void MD5Final(uint8_t digest[16], MD5_CTX *context);
void MD5Transform(uint32_t state[4], const uint8_t block[64]);
void Encode(uint8_t *output, const uint32_t *input, size_t len);
void Decode(uint32_t *output, const uint8_t *input, size_t len);


#ifdef __cplusplus
}
#endif

#endif // MD5_H
